package gui.factory.components;

public interface AbstractDownload
{
    public abstract void setFileName(String fileName);
    public abstract void setCurrentFileSize(long currentFileSize);
    public abstract long getCurrentFileSize();
    public abstract void setFileSize(long fileSize);
    public abstract long getFileSize();
    public abstract void addToCurrentFileSize(long sizeToAdd);
    public abstract void setRemainingFileSize(long remainingFileSize);
    public abstract long getRemainingFileSize();
    /**
     * Updates the remaining time to the end of the download
     * @param seconds Number of secods remaining
     */
    public abstract void setRemainingTime(long seconds);
    /**
     * Updates the download transfer rate of the current file
     * @param transferRate Transfer rate in KB/s
     */
    public abstract void setCurrentTransferRate(long transferRate);
    /**
     * Set the destination folder of the download
     * @param destinationFolder Destination folder
     */
    public abstract void setDestinationFolder(String destinationFolder);
}
